/// 日志级别枚举。
///
/// - `verbose`：最详细的日志，一般用于临时调试。
/// - `debug`：调试信息，默认最小级别。
/// - `info`：重要运行信息。
/// - `warn`：非致命警告。
/// - `error`：错误信息。
///
/// 枚举定义的顺序决定了最小级别过滤的行为（通过 `index` 比较），
/// 例如当 `minLevel=info` 时，只有 `info/warn/error` 会通过；
/// 同理文件写入最小级别由 `fileLoggingMinLevel` 与此顺序共同决定。
enum LogLevel { verbose, debug, info, warn, error }

/// 为 `LogLevel` 添加扩展能力。
///
/// 提供将枚举级别转换为短字符串标识（用于格式化与原生桥接）。
extension LogLevelExt on LogLevel {
  /// 日志级别的短字符串：
  /// - verbose -> 'V'
  /// - debug   -> 'D'
  /// - info    -> 'I'
  /// - warn    -> 'W'
  /// - error   -> 'E'
  String get short {
    switch (this) {
      case LogLevel.verbose:
        return 'V';
      case LogLevel.debug:
        return 'D';
      case LogLevel.info:
        return 'I';
      case LogLevel.warn:
        return 'W';
      case LogLevel.error:
        return 'E';
    }
  }
}
